The Data Over Cable Service Interface Specification (DOCSIS) provides a specification for governing communications over a cable infrastructure (FIG. 5) between an end user device (referred to as a cable modem (CM)) and a central controller (referred to as a cable modem termination system (CMTS)). The cable infrastructure may comprise a hybrid fiber coax (HFC) link which supports a plurality of radio frequency (RF) channels that are divided into downstream channels and upstream channels. There are typically many more downstream channels than upstream channels (for example, groups of 32 single carrier QAM downstream channels and 8 single carrier QAM upstream channels). Generally when a cable modem desires to make an upstream transmission, the cable modem must first make a request to the central controller to use the HFC link because the upstream channels are a shared resource among the connected cable modems. The request states the amount of data the requesting cable modem wants to send. In scheduling the upstream transmissions, the central controller will consider the requests received from all connected cable modems. For each upstream channel, the central controller sends a grant message (referred to as a MAP message in DOCSIS) in the downstream direction. The grant message conveys information as to how a particular upstream RF channel is to be used over a defined interval of time. In particular, the grant message specifically identifies, for the upstream RF channel, when and for how long each cable modem is permitted to use the RF channel to make a burst upstream communication.
Each cable modem that receives the grant message will process the grant message in order to identify the specific transmission grants that have been allocated by the central controller for use by the cable modem. When the time for transmission arrives, the cable modem accesses the allocated one of the upstream RF channels and makes the transmit burst communication.
The cable modem may support a plurality of subscriber services. Examples of such services include: telephony, video, pay-per-view, internet, audio, file transfer, etc. This list of services is not intended to be exhaustive. In support of these services, the cable modem is assigned corresponding service identifier (SID) codes that are used by the central controller to allocate bandwidth (both on the upstream and downstream). In the upstream, multiple SIDs, also referred to as an SID cluster, are used to identify a specific data flow, one SID per upstream channel used by that data flow.
The plurality of downstream RF channels support the downstream data flows from the central controller to the plurality of connected cable modems. The plurality of upstream RF channels support the upstream data flows from the plurality of connected cable modems to the central controller. It is accordingly understood that there is contention for use of the upstream RF channels. Each upstream RF channel carries bursts of packets from the cable modems. The contention is avoided by the central controller with each upstream channel being broken into a plurality of assignable time (and code or frequency) slots (referred to as minislots), and each cable modem makes its upstream burst signal transmission only during the time (and code or frequency) slot(s) assigned to it by the central controller in the grant message.
DOCSIS further supports bonding together of multiple upstream RF channels in a bonded upstream channel group in order to increase upstream throughput. For example, a bonded upstream channel group could be assigned to a particular cable modem in support of one of its services. When a cable modem makes a request for upstream bandwidth for a given service, the central controller can choose whether to grant that request on a single upstream RF channel or on several upstream RF channels of the bonded upstream channel group. In response to receipt of grants for use of the bonded upstream channel group, the cable modem must divide the data stream into bursts that fit within the instructions for those grants and then access the individual RF channels within the bonded upstream channel group to transmit the bursts at the specified time (and code or frequency) using the allocated minislots. Some or all of the burst communications may be simultaneous or partially overlapping on the plural channels of the bonded upstream channel group.
Reference is made to FIG. 1 showing an example of this process. Assume that the cable modem has a buffered data stream 10 relating to a given SID cluster. On an upstream RF channel 12, the cable modem makes a request 14 for bandwidth. This request 14 will include information concerning the size 16 of the buffered data stream 10 as well as an SID that corresponds to the upstream RF channel 12, that SID being a member of the SID cluster identifying data stream 10. The central controller receives and processes the request. Prior to this point in time, the central controller has already decided 18 to bond together multiple upstream RF channels in a bonded upstream channel group 20 to support upstream communications by assigning the SID cluster for the data stream 10. The central controller further issues grant messages 22 on a downstream channel 24 providing information to the cable modem regarding accessing the upstream channels within the bonded upstream channel group 20 to transmit the buffered data stream 10. The information conveyed by the grant messages 22 includes information indicative of: a starting time T1 of each allocated burst communication interval, a burst duration BDj (i.e., number of minislots allocated) and the upstream channel CHk to be used. In this example, the grant messages 22 grant the cable modem access to channel CH1 at time T1 for burst duration BD1 and access to channel CH2 at time T2 for burst duration BD2. The cable modem responds to the grant messages 22 by dividing 26 the buffered data stream 10 into a first partial data portion PDP1 (containing bytes which can be transmitted within the burst duration BD1) and a second partial data portion PDP2 (containing bytes which can be transmitted within the burst duration BD2). When the time T1 arrives, the cable modem accesses channel CH1 and transmits the first partial data portion PDP1 of the buffered data stream 10 (reference 28). When the time T2 arrives, the cable modem accesses channel CH2 and transmits the second partial data portion PDP2 of the buffered data stream 10 (reference 30).
It will be noted that the cable modem, in transmitting the upstream bursts for carrying partial data portions which belong to the same buffered data stream 10 over the upstream channels of the bonded upstream channel group 20, could experience a significant skew across the upstream channels. This skew can be exacerbated by the physical characteristics differences among the upstream channels. For example, the two channels may use different modulation parameters, different formatting, different forward error correction, etc.
There are two main rules which govern the transmission function by the cable modem:
1. Transmission order rule. In order to reduce the skew, the time ordering of assigning partial data portions to the grant allocated burst communication intervals is controlled so that a burst communication interval having a relatively earlier transmit starting time should be assigned to carry relatively earlier partial data portion(s) of the buffered data stream 10, while a burst communication interval having a relatively later transmit starting time should be assigned to carry relatively later partial data portion(s) of the buffered data stream 10. The operation shown in FIG. 1 effectuates the requirements of the transmission order rule because the cable modem, in response to the grants 22, assigned the relatively earlier first partial data portion PDP1 to the relatively earlier starting time T1 with burst duration BD1. The relatively later second partial data portion PDP2 is assigned to the relatively later starting time T2 with burst duration BD2.
2. Margin rule. There is a minimum time interval, referred to as the margin M, that is required from the instant in time that the cable modem decides to transmit a burst to the starting time T1 when that burst occurs. The grant messages 22 must be received and processed by the cable modem with sufficient advance timing so that the margin rule is not violated. The operation shown in FIG. 1 satisfies the margin rule because the time of the grant messages 22 is sufficiently early enough to permit processing prior to a time T1-M.
Reference is now made to FIG. 2. The process may be complicated by situations where the central controller responds to the cable modem's request 14 for bandwidth by issuing two (or more) grant messages 22a and 22b separated by a substantive time interval 23. This may occur, for example, because the central controller is unable at the time of the first grant message 22a to issue the necessary grant messages to allocate sufficient bandwidth to handle the size 16 of the buffered data stream 10. At a later point in time, when bandwidth to handle any remaining portion of the buffered data stream 10 becomes available, the central controller issues the second grant message 22b. 
Assume again that the cable modem has a buffered data stream 10 relating to a given SID cluster. On an upstream RF channel 12, the cable modem makes a request 14 for bandwidth. This request 14 will include information concerning the size 16 of the buffered data stream 10 as well as the SID. The central controller receives and processes the request. Again, prior to this point in time, the central controller had decided 18 to bond together multiple upstream RF channels in a bonded upstream channel group 20 to support upstream communications by assigning the SID cluster for that data stream 10. The central controller next issues a first grant message 22a on a downstream channel 24 providing information to the cable modem regarding accessing the channels within the bonded upstream channel group 20 to transmit the buffered data stream 10. In this example, the first grant message 22a grants the cable modem access to channel CH1 at time T1 for burst duration BD1. The cable modem responds to the first grant message 22a by dividing 26 the buffered data stream 10 to provide a first partial data portion PDP1 (containing bytes which can be transmitted within the burst duration BD1). When time T1 arrives, the cable modem accesses channel CH1 and transmits the first partial data portion PDP1 of the buffered data stream 10 (reference 28). Around (either before or after) the starting time T1, the central controller, recognizing that the bandwidth allocated in the first grant message 22a was insufficient, issues a second grant message 22b on the downstream channel 24 providing information to the cable modem regarding accessing the channels within the bonded upstream channel group 20 to further transmit the buffered data stream 10. In this example, the second grant message 22b grants the cable modem access to channel CH2 at time T2 for burst duration BD2. The cable modem responds to the second grant message 22b by identifying 26′ a second partial data portion PDP2 of the divided buffered data stream 10 (containing bytes which can be transmitted within the burst duration BD2). When time T2 arrives, the cable modem accesses channel CH2 and transmits the second partial data portion PDP2 of the buffered data stream 10 (reference 30).
Assume now that the first grant message 22a grants the cable modem access to channel CH1 at time T1 for burst duration BD1, and that the second grant message 22b grants the cable modem access to channel CH2 at time T2 for burst duration BD2, but that starting time T2 is earlier in time than starting time T1. This is opposite from the case in FIG. 2 described above, thus the later in time grant message has allocated an earlier in time starting time. It would not be appropriate for the cable modem to transmit the relatively later partial data portion PDP2 in this relatively earlier starting time T2. This would violate the transmission order rule.
Reference is now made to FIG. 3. To address the foregoing problem, the cable modem is configured to respond to the first grant message 22a by opening a delay window W. During this delay window W, the cable modem waits to see if the central controller will issue any more grant messages on the downstream channel relating to use of the bonded upstream channel group 20. The delay window W is set to expire sufficiently far in advance of the starting time T1 specified by the first grant message 22a in order to ensure that the margin rule is not violated. If the second grant message 22b is received within the delay W, it will be processed by the cable modem along with the first grant message 22a for purposes of planning the burst communications. Such is the case in FIG. 3. The cable modem responds to the first and second grant messages 22a and 22b by dividing 26″ the buffered data stream 10 into a first partial data portion PDP1′ (containing bytes which can be transmitted within the burst duration BD2 which will occur earlier at time T2) and a second partial data portion PDP2′ (containing bytes which can be transmitted within the burst duration BD1 which will occur later at time T1). When time T2 arrives (reminder: T2 is before T1), the cable modem accesses channel CH2 and transmits the first partial data portion PDP1′ of the buffered data stream 10 (reference 28′). When time T1 arrives, the cable modem accesses channel CH1 and transmits the second partial data portion PDP2′ of the buffered data stream 10 (reference 30′). This technique ensures that the transmission order rule is not violated.
The delay window solution described above does not present a satisfactory solution. If the delay window is too small, then the second grant message 22b will not be handled along with the first grant message 22a. This could result in a violation of the transmission order rule. If the delay window is instead too large, the messages 22a and 22b will be handled together, but there is a risk that the margin rule will be violated.
There is accordingly a need in the art for a better way to handle multiple grant messages.